{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib as mpl"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "iris = datasets.load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _iris_dataset:\n",
      "\n",
      "Iris plants dataset\n",
      "--------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      "    :Number of Instances: 150 (50 in each of three classes)\n",
      "    :Number of Attributes: 4 numeric, predictive attributes and the class\n",
      "    :Attribute Information:\n",
      "        - sepal length in cm\n",
      "        - sepal width in cm\n",
      "        - petal length in cm\n",
      "        - petal width in cm\n",
      "        - class:\n",
      "                - Iris-Setosa\n",
      "                - Iris-Versicolour\n",
      "                - Iris-Virginica\n",
      "                \n",
      "    :Summary Statistics:\n",
      "\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "                    Min  Max   Mean    SD   Class Correlation\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "    sepal length:   4.3  7.9   5.84   0.83    0.7826\n",
      "    sepal width:    2.0  4.4   3.05   0.43   -0.4194\n",
      "    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)\n",
      "    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "    :Class Distribution: 33.3% for each of 3 classes.\n",
      "    :Creator: R.A. Fisher\n",
      "    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
      "    :Date: July, 1988\n",
      "\n",
      "The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\n",
      "from Fisher's paper. Note that it's the same as in R, but not as in the UCI\n",
      "Machine Learning Repository, which has two wrong data points.\n",
      "\n",
      "This is perhaps the best known database to be found in the\n",
      "pattern recognition literature.  Fisher's paper is a classic in the field and\n",
      "is referenced frequently to this day.  (See Duda & Hart, for example.)  The\n",
      "data set contains 3 classes of 50 instances each, where each class refers to a\n",
      "type of iris plant.  One class is linearly separable from the other 2; the\n",
      "latter are NOT linearly separable from each other.\n",
      "\n",
      ".. topic:: References\n",
      "\n",
      "   - Fisher, R.A. \"The use of multiple measurements in taxonomic problems\"\n",
      "     Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n",
      "     Mathematical Statistics\" (John Wiley, NY, 1950).\n",
      "   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n",
      "     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.\n",
      "   - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n",
      "     Structure and Classification Rule for Recognition in Partially Exposed\n",
      "     Environments\".  IEEE Transactions on Pattern Analysis and Machine\n",
      "     Intelligence, Vol. PAMI-2, No. 1, 67-71.\n",
      "   - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\".  IEEE Transactions\n",
      "     on Information Theory, May 1972, 431-433.\n",
      "   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al\"s AUTOCLASS II\n",
      "     conceptual clustering system finds 3 classes in the data.\n",
      "   - Many, many more ...\n"
     ]
    }
   ],
   "source": [
    "print(iris.DESCR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5, 1.4, 0.2],\n",
       "       [4.9, 3. , 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.3, 0.2],\n",
       "       [4.6, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.6, 1.4, 0.2],\n",
       "       [5.4, 3.9, 1.7, 0.4],\n",
       "       [4.6, 3.4, 1.4, 0.3],\n",
       "       [5. , 3.4, 1.5, 0.2],\n",
       "       [4.4, 2.9, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5.4, 3.7, 1.5, 0.2],\n",
       "       [4.8, 3.4, 1.6, 0.2],\n",
       "       [4.8, 3. , 1.4, 0.1],\n",
       "       [4.3, 3. , 1.1, 0.1],\n",
       "       [5.8, 4. , 1.2, 0.2],\n",
       "       [5.7, 4.4, 1.5, 0.4],\n",
       "       [5.4, 3.9, 1.3, 0.4],\n",
       "       [5.1, 3.5, 1.4, 0.3],\n",
       "       [5.7, 3.8, 1.7, 0.3],\n",
       "       [5.1, 3.8, 1.5, 0.3],\n",
       "       [5.4, 3.4, 1.7, 0.2],\n",
       "       [5.1, 3.7, 1.5, 0.4],\n",
       "       [4.6, 3.6, 1. , 0.2],\n",
       "       [5.1, 3.3, 1.7, 0.5],\n",
       "       [4.8, 3.4, 1.9, 0.2],\n",
       "       [5. , 3. , 1.6, 0.2],\n",
       "       [5. , 3.4, 1.6, 0.4],\n",
       "       [5.2, 3.5, 1.5, 0.2],\n",
       "       [5.2, 3.4, 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.6, 0.2],\n",
       "       [4.8, 3.1, 1.6, 0.2],\n",
       "       [5.4, 3.4, 1.5, 0.4],\n",
       "       [5.2, 4.1, 1.5, 0.1],\n",
       "       [5.5, 4.2, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.2, 1.2, 0.2],\n",
       "       [5.5, 3.5, 1.3, 0.2],\n",
       "       [4.9, 3.6, 1.4, 0.1],\n",
       "       [4.4, 3. , 1.3, 0.2],\n",
       "       [5.1, 3.4, 1.5, 0.2],\n",
       "       [5. , 3.5, 1.3, 0.3],\n",
       "       [4.5, 2.3, 1.3, 0.3],\n",
       "       [4.4, 3.2, 1.3, 0.2],\n",
       "       [5. , 3.5, 1.6, 0.6],\n",
       "       [5.1, 3.8, 1.9, 0.4],\n",
       "       [4.8, 3. , 1.4, 0.3],\n",
       "       [5.1, 3.8, 1.6, 0.2],\n",
       "       [4.6, 3.2, 1.4, 0.2],\n",
       "       [5.3, 3.7, 1.5, 0.2],\n",
       "       [5. , 3.3, 1.4, 0.2],\n",
       "       [7. , 3.2, 4.7, 1.4],\n",
       "       [6.4, 3.2, 4.5, 1.5],\n",
       "       [6.9, 3.1, 4.9, 1.5],\n",
       "       [5.5, 2.3, 4. , 1.3],\n",
       "       [6.5, 2.8, 4.6, 1.5],\n",
       "       [5.7, 2.8, 4.5, 1.3],\n",
       "       [6.3, 3.3, 4.7, 1.6],\n",
       "       [4.9, 2.4, 3.3, 1. ],\n",
       "       [6.6, 2.9, 4.6, 1.3],\n",
       "       [5.2, 2.7, 3.9, 1.4],\n",
       "       [5. , 2. , 3.5, 1. ],\n",
       "       [5.9, 3. , 4.2, 1.5],\n",
       "       [6. , 2.2, 4. , 1. ],\n",
       "       [6.1, 2.9, 4.7, 1.4],\n",
       "       [5.6, 2.9, 3.6, 1.3],\n",
       "       [6.7, 3.1, 4.4, 1.4],\n",
       "       [5.6, 3. , 4.5, 1.5],\n",
       "       [5.8, 2.7, 4.1, 1. ],\n",
       "       [6.2, 2.2, 4.5, 1.5],\n",
       "       [5.6, 2.5, 3.9, 1.1],\n",
       "       [5.9, 3.2, 4.8, 1.8],\n",
       "       [6.1, 2.8, 4. , 1.3],\n",
       "       [6.3, 2.5, 4.9, 1.5],\n",
       "       [6.1, 2.8, 4.7, 1.2],\n",
       "       [6.4, 2.9, 4.3, 1.3],\n",
       "       [6.6, 3. , 4.4, 1.4],\n",
       "       [6.8, 2.8, 4.8, 1.4],\n",
       "       [6.7, 3. , 5. , 1.7],\n",
       "       [6. , 2.9, 4.5, 1.5],\n",
       "       [5.7, 2.6, 3.5, 1. ],\n",
       "       [5.5, 2.4, 3.8, 1.1],\n",
       "       [5.5, 2.4, 3.7, 1. ],\n",
       "       [5.8, 2.7, 3.9, 1.2],\n",
       "       [6. , 2.7, 5.1, 1.6],\n",
       "       [5.4, 3. , 4.5, 1.5],\n",
       "       [6. , 3.4, 4.5, 1.6],\n",
       "       [6.7, 3.1, 4.7, 1.5],\n",
       "       [6.3, 2.3, 4.4, 1.3],\n",
       "       [5.6, 3. , 4.1, 1.3],\n",
       "       [5.5, 2.5, 4. , 1.3],\n",
       "       [5.5, 2.6, 4.4, 1.2],\n",
       "       [6.1, 3. , 4.6, 1.4],\n",
       "       [5.8, 2.6, 4. , 1.2],\n",
       "       [5. , 2.3, 3.3, 1. ],\n",
       "       [5.6, 2.7, 4.2, 1.3],\n",
       "       [5.7, 3. , 4.2, 1.2],\n",
       "       [5.7, 2.9, 4.2, 1.3],\n",
       "       [6.2, 2.9, 4.3, 1.3],\n",
       "       [5.1, 2.5, 3. , 1.1],\n",
       "       [5.7, 2.8, 4.1, 1.3],\n",
       "       [6.3, 3.3, 6. , 2.5],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [7.1, 3. , 5.9, 2.1],\n",
       "       [6.3, 2.9, 5.6, 1.8],\n",
       "       [6.5, 3. , 5.8, 2.2],\n",
       "       [7.6, 3. , 6.6, 2.1],\n",
       "       [4.9, 2.5, 4.5, 1.7],\n",
       "       [7.3, 2.9, 6.3, 1.8],\n",
       "       [6.7, 2.5, 5.8, 1.8],\n",
       "       [7.2, 3.6, 6.1, 2.5],\n",
       "       [6.5, 3.2, 5.1, 2. ],\n",
       "       [6.4, 2.7, 5.3, 1.9],\n",
       "       [6.8, 3. , 5.5, 2.1],\n",
       "       [5.7, 2.5, 5. , 2. ],\n",
       "       [5.8, 2.8, 5.1, 2.4],\n",
       "       [6.4, 3.2, 5.3, 2.3],\n",
       "       [6.5, 3. , 5.5, 1.8],\n",
       "       [7.7, 3.8, 6.7, 2.2],\n",
       "       [7.7, 2.6, 6.9, 2.3],\n",
       "       [6. , 2.2, 5. , 1.5],\n",
       "       [6.9, 3.2, 5.7, 2.3],\n",
       "       [5.6, 2.8, 4.9, 2. ],\n",
       "       [7.7, 2.8, 6.7, 2. ],\n",
       "       [6.3, 2.7, 4.9, 1.8],\n",
       "       [6.7, 3.3, 5.7, 2.1],\n",
       "       [7.2, 3.2, 6. , 1.8],\n",
       "       [6.2, 2.8, 4.8, 1.8],\n",
       "       [6.1, 3. , 4.9, 1.8],\n",
       "       [6.4, 2.8, 5.6, 2.1],\n",
       "       [7.2, 3. , 5.8, 1.6],\n",
       "       [7.4, 2.8, 6.1, 1.9],\n",
       "       [7.9, 3.8, 6.4, 2. ],\n",
       "       [6.4, 2.8, 5.6, 2.2],\n",
       "       [6.3, 2.8, 5.1, 1.5],\n",
       "       [6.1, 2.6, 5.6, 1.4],\n",
       "       [7.7, 3. , 6.1, 2.3],\n",
       "       [6.3, 3.4, 5.6, 2.4],\n",
       "       [6.4, 3.1, 5.5, 1.8],\n",
       "       [6. , 3. , 4.8, 1.8],\n",
       "       [6.9, 3.1, 5.4, 2.1],\n",
       "       [6.7, 3.1, 5.6, 2.4],\n",
       "       [6.9, 3.1, 5.1, 2.3],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [6.8, 3.2, 5.9, 2.3],\n",
       "       [6.7, 3.3, 5.7, 2.5],\n",
       "       [6.7, 3. , 5.2, 2.3],\n",
       "       [6.3, 2.5, 5. , 1.9],\n",
       "       [6.5, 3. , 5.2, 2. ],\n",
       "       [6.2, 3.4, 5.4, 2.3],\n",
       "       [5.9, 3. , 5.1, 1.8]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 4)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['sepal length (cm)',\n",
       " 'sepal width (cm)',\n",
       " 'petal length (cm)',\n",
       " 'petal width (cm)']"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.feature_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150,)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.target.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = iris.data[:, :2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(150, 2)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x20e64b8ef98>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X[:, 0], X[:, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x20e66db1b70>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X[y==0, 0], X[y==0, 1], color=\"red\", marker=\"o\")\n",
    "plt.scatter(X[y==1, 0], X[y==1, 1], color=\"blue\", marker=\"+\")\n",
    "plt.scatter(X[y==2, 0], X[y==2, 1], color=\"green\", marker=\"x\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = iris.data[:, 2:]"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
